home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / bag.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  2.6 KB  |  103 lines

  1. body_depth = vector(0,0,0.25);
  2.  
  3. corner1 = cbezier(
  4.      list(   ctlpt(e3,-0.75,0,0),
  5.         ctlpt(e3,-0.75,0.495,0),
  6.         ctlpt(e3,-0.75,0.5,0),
  7.         ctlpt(e3,-0.745,0.5,0),
  8.         ctlpt(e3,0,0.5,0)
  9.     ) );
  10. corner3 = corner1 * rotx(180);
  11.  
  12. corner4 = cbezier(
  13.      list(   ctlpt(e3,0,0.5,0),
  14.         ctlpt(e3,0.745,0.5,0),
  15.         ctlpt(e3,0.75,0.5,0),
  16.         ctlpt(e3,0.75,0.495,0),
  17.         ctlpt(e3,0.75,0,0)
  18.     ) );
  19. corner2 = corner4 * rotx(180);
  20.  
  21. side1 = boolsum( corner1,corner2,corner3,corner4 );
  22. side2 = side1 * trans(body_depth);
  23.  
  24. border1 = extrude( corner1,body_depth );
  25. border2 = extrude( corner2,body_depth );
  26. border3 = extrude( corner3,body_depth );
  27. border4 = extrude( corner4,body_depth );
  28.  
  29. view( list( border1,border2,border3,border4 ),on );
  30. view( list( side1,side2 ),off );
  31.  
  32. ribbon = cbspline( 3, list(
  33.             ctlpt(e3, -0.75,  0.25,  0.075),
  34.             ctlpt(e3, -0.82,  0.5,   0.075),
  35.             ctlpt(e3, -0.6,   0.95,  0.075),
  36.             ctlpt(e3, -0.45,  1.1,   0.075),
  37.             ctlpt(e3, -0.3,   1.23,  0.075),
  38.             ctlpt(e3,  0,     1.25,  0.075),
  39.             ctlpt(e3,  0.15,  1.3,   0.075),
  40.             ctlpt(e3,  0.3,   1.16,  0.075),
  41.             ctlpt(e3,  0.45,  1.18,  0.075),
  42.             ctlpt(e3,  0.6,   0.98,  0.075),
  43.             ctlpt(e3,  0.82,  0.5,   0.075),
  44.             ctlpt(e3,  0.75,  0.25,  0.075)),
  45.               list ( kv_open ));
  46. ribbon = extrude(ribbon,vector(0,0,0.1));
  47. view(ribbon,off);
  48.  
  49. free(ribbon);
  50. free(side1);
  51. free(side2);
  52. free(corner1);
  53. free(corner2);
  54. free(corner3);
  55. free(corner4);
  56.  
  57. section = cbezier(list( ctlpt(e3,  0.25,   0,  0),
  58.             ctlpt(e3,  0.275,  0,  -0.015),
  59.              ctlpt(e3,  0.3,    0,  0),
  60.             ctlpt(e3,  0.275,  0,  0.015)));
  61. handle = surfrev( section );
  62.  
  63. handle = sdivide( handle, COL, 2.0);
  64. handle = nth(handle, 1);
  65.  
  66. handle = handle * trans(vector(0, 0.45, 0));
  67. view(list(handle, handle*trans(body_depth)),off);
  68.  
  69. free( section );
  70. free( handle );
  71.  
  72. c1 = cbezier(list(ctlpt(e3, 0.6, -0.45,  0 ),
  73.           ctlpt(e3, 0.6, -0.1,  0 ),
  74.           ctlpt(e3, 0.6, 0.2,    0 )));
  75.  
  76. c3 = cbezier(list(ctlpt(e3, 0.6, -0.45,  0 ),
  77.           ctlpt(e3, 0.6, -0.2,  -0.07 ),
  78.           ctlpt(e3, 0.6, 0.2,    -0.1 )));
  79.  
  80. c2 = cbezier(list(ctlpt(e3, 0.6, 0.2, -0.1 ),
  81.           ctlpt(e3, 0.6, 0.2, -0.025 ),
  82.           ctlpt(e3, 0.6, 0.2, -0.05 )));
  83.  
  84. c4 = cbezier(list(ctlpt(e3, 0.6, 0.2,    0 ),
  85.           ctlpt(e3, 0.6, 0.2, -0.025 ),
  86.           ctlpt(e3, 0.6, 0.2, -0.05 )));
  87.  
  88. side1a = boolsum(c1,c2,c3,c4);
  89. side2a = side1a * trans(vector(-1.2,0,0));
  90. back = extrude(c3,vector(-1.2,0,0));
  91.  
  92. cover = cbezier(list( ctlpt(e3, 0.6, 0.2,    0 ),
  93.               ctlpt(e3, 0.6, 0.3,   -0.07),
  94.               ctlpt(e3, 0.6, 0.225, -0.15),
  95.                   ctlpt(e3, 0.6, -0.1,  -0.11)));
  96. cover = extrude(cover,vector(-1.2,0,0));
  97. #cover = gpolygon(cover, on);
  98. attrib(back,"rgb","0,255,0");
  99. attrib(cover,"rgb","255,255,255");
  100. view(list(side1a,side2a,back,cover),off);
  101.  
  102.  
  103.